package com.aisile.apis.wemedia;

import com.aisile.model.admin.dtos.NewsAuthDto;
import com.aisile.model.common.dtos.ResponseResult;
import com.aisile.model.media.dtos.WmNewsDto;
import com.aisile.model.media.dtos.WmNewsPageReqDto;
import com.aisile.model.media.pojos.WmNews;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Auther:yry
 * @Date:2024/1/6 0006
 * @VERSON:1.0
 */
@Api(value = "自媒体文章管理", tags = "WmNewsControllerApi", description = "自媒体文章管理API文档")
public interface WmNewsControllerApi {

    /**
     * ResponseResult  与前端约定接口  后台自己使用，自己说了算 feign使用接口
     *
     * @param dto
     * @return
     */

    @ApiOperation("查询文章列表(分页)")
    public ResponseResult findAll(WmNewsPageReqDto dto);

    @ApiOperation("保存文章信息")
    public ResponseResult saveNews(WmNewsDto dto);

    @ApiOperation("根据id查询文章信息")
    public ResponseResult findById(Integer id);

    @ApiOperation("根据id删除文章信息")
    public ResponseResult delById(Integer id);

    @ApiOperation("根据状态进行文章上下架")
    public ResponseResult downOrUp(WmNewsDto dto);

    /**
     * 根据文章id查询自媒体文章信息
     *
     * @param id
     * @return
     */
    public WmNews findByIdToFeign(Integer id);

    /**
     * 根据文章id修改文章信息
     *
     * @param wmNews
     * @return
     */
    public WmNews updateWmNewsForFeign(WmNews wmNews);


    /**
     * 查询需要发布的文章id列表  文章状态 = 8  且定时发布时间小于等于当前时间的
     *
     * @return
     */
    public List<Integer> findRelease();

    /**
     *管理员查询文章列表
     * @param dto
     * @return
     */
    @ApiOperation("管理员查询文章列表")
    public ResponseResult findList(NewsAuthDto dto);

    @ApiOperation("根据id查看文章详情")
    public ResponseResult findWmNewsVo(Integer id);


}
